package com.itheima.template;

/**
 * @author zzw
 * @date 2025/10/25
 * @description 模板方法模式（抽象类）
 */
public abstract class AbstractClass {

    // 模板方法
    public final void cookProcess() {
        // 第一步：倒油
        this.pourOil();
        // 第二步：热油
        this.heatOil();
        // 第三步：倒蔬菜
        this.pourVegetable();
        // 第四步：倒调味料
        this.pourSauce();
        // 第五步：翻炒
        this.fry();
    }

    // 具体方法
    public void pourOil() {
        System.out.println("倒油");
    }

    // 具体方法
    public void heatOil() {
        System.out.println("热油");
    }

    // 抽象方法
    public abstract void pourVegetable();

    // 抽象方法
    public abstract void pourSauce();

    // 具体方法
    public void fry() {
        System.out.println("炒啊炒啊炒到熟");
    }
}
